//
//  CZBaseTableViewController.swift
//  05.08--weibo
//
//  Created by fennyYang on 16/5/12.
//  Copyright © 2016年 a. All rights reserved.
//

import UIKit

/// 根据用户使用登录显示不同的界面(1.tableView 2.显示自定义的访客视图)
class CZBaseTableViewController: UITableViewController
{

    var userLogin: Bool = CZUserAccountViewModel.sharedInstance.isUserLogin

    override func loadView()
    {
        if userLogin
        {
            // 显示按照正常的流程(tableView)
            super.loadView()
        }
        else
        {
            // 用户没有登录(自己搞一个界面)
            view = visitorView

            // 5.设置控制器成为visitorView的代理
            visitorView.delegate = self


            // is：判断一个对象是否是指定类型
            if self is CZHomeViewController
            {
                visitorView.startRotationAnimation()
//                print("CZHomeViewController")
            }
            else if self is CZMessageViewController
            {
                visitorView.setupVisitorInfo("visitordiscover_image_message", message: "登录后，别人评论你的微博，发给你的消息，都会在这里收到通知")
            }
            else if self is CZDiscoveryViewController
            {
                visitorView.setupVisitorInfo("visitordiscover_image_message", message: "登录后，最新、最热微博尽在掌握，不再会与实事潮流擦肩而过")
            }
            else if self is CZProfileViewController
            {
                visitorView.setupVisitorInfo("visitordiscover_image_profile", message: "登录后，你的微博、相册、个人资料会显示在这里，展示给别人")
            }

//            view.backgroundColor = UIColor.whiteColor()

            // 设置导航栏按钮，导航栏上面显示的内容不是导航控制器决定的，是根据导航控制器正在显示的子控制器来确定的
            self.navigationItem.leftBarButtonItem = UIBarButtonItem(title: "注册", style: UIBarButtonItemStyle.Plain, target: self, action: "visitorViewDidClickRegister")

            self.navigationItem.rightBarButtonItem = UIBarButtonItem(title: "登录", style: UIBarButtonItemStyle.Plain, target: self, action: "visitorViewDidClickLogin")

        }
    }

     // MARK: - 懒加载
     //  访客视图
     // private 私有,除了这个文件外,别人不知道有这个属性或方法,和OC里面将属性或方法定义在.m里面一样
    private lazy var visitorView: CZVisitorView = CZVisitorView()

}

// MARK: - 扩展
// 扩展对象实现协议：可以将一个协议对应的代码写在一起
// 6.控制器遵守CZVisitorViewDelegate协议
extension CZBaseTableViewController: CZVisitorViewDelegate
{
    // MARK: - 代理方法
    // 7.实现协议的方法
    func visitorViewDidClickRegister()
    {
        print(__FUNCTION__)
    }

    func visitorViewDidClickLogin()
    {
        // Model 出授权控制器
        let oauthVC = CZOauthViewController()

        let nav = UINavigationController(rootViewController: oauthVC)

     self.presentViewController(nav, animated: true, completion: nil)
    }

}






















































